{
  /*
  学习目标：泛型函数-调用
  1. 完整写法

  规则：
    1.默认，调用省略指定泛型。符合阅读习惯
    2. 什么情况加.
      2.1 类型推断不准确
      2.2 类型无法表示，<any> 💥 不常见

*/

  function fn<S>(value: S): S {
    return value;
  }

  // 1. 完整写法
  fn<string>('1231');

  type Obj = {
    name: string;
    age: number;
    hobby?: string;
  };

  const zs = {
    name: 'zs',
    age: 18,
  };
  // 2. 类型推断不准确时，需要使用完整写法
  const res = fn(zs);
  // res.hobby;
}
